“”“
这些类定义了 Redhat 虚拟机的数据模型。
”“”

//虚拟机数据模型
// VirtualMachine.h
#ifndef VIRTUAL_MACHINE_H
#define VIRTUAL_MACHINE_H

#include <string>
#include <vector>

namespace ebackup {
namespace plugins {

struct VirtualMachine {
    std::string name;          // 虚拟机名称
    int cpus;                  // CPU核心数
    int memory_mb;             // 内存大小（MB）
    std::vector<std::string> disks; // 磁盘列表
    std::string state;         // 虚拟机状态（运行、停止等）

    // 构造函数
    VirtualMachine(const std::string& name, int cpus, int memory_mb, const std::vector<std::string>& disks, const std::string& state)
        : name(name), cpus(cpus), memory_mb(memory_mb), disks(disks), state(state) {}

    // 打印虚拟机信息
    void print() const {
        std::cout << "VM Name: " << name << std::endl;
        std::cout << "CPUs: " << cpus << std::endl;
        std::cout << "Memory: " << memory_mb << " MB" << std::endl;
        std::cout << "Disks: ";
        for (const auto& disk : disks) {
            std::cout << disk << " ";
        }
        std::cout << std::endl;
        std::cout << "State: " << state << std::endl;
    }
};

} // namespace plugins
} // namespace ebackup

#endif // VIRTUAL_MACHINE_H


//备份策略数据模型
// BackupPolicy.h
#ifndef BACKUP_POLICY_H
#define BACKUP_POLICY_H

namespace ebackup {
namespace plugins {

struct BackupPolicy {
    enum Type { FULL, INCREMENTAL } type; // 备份类型（全量或增量）
    std::string schedule;                // 备份计划（如每天、每周等）
    int retention_days;                  // 备份保留天数

    // 构造函数
    BackupPolicy(Type type, const std::string& schedule, int retention_days)
        : type(type), schedule(schedule), retention_days(retention_days) {}

    // 打印备份策略信息
    void print() const {
        std::cout << "Backup Type: " << (type == FULL ? "Full" : "Incremental") << std::endl;
        std::cout << "Schedule: " << schedule << std::endl;
        std::cout << "Retention Days: " << retention_days << std::endl;
    }
};

} // namespace plugins
} // namespace ebackup

#endif // BACKUP_POLICY_H


//恢复点数据模型
// RecoveryPoint.h
#ifndef RECOVERY_POINT_H
#define RECOVERY_POINT_H

namespace ebackup {
namespace plugins {

struct RecoveryPoint {
    std::string id;          // 恢复点ID
    std::string timestamp;   // 时间戳
    enum Type { FULL, INCREMENTAL } type; // 恢复点类型（全量或增量）

    // 构造函数
    RecoveryPoint(const std::string& id, const std::string& timestamp, Type type)
        : id(id), timestamp(timestamp), type(type) {}

    // 打印恢复点信息
    void print() const {
        std::cout << "Recovery Point ID: " << id << std::endl;
        std::cout << "Timestamp: " << timestamp << std::endl;
        std::cout << "Type: " << (type == FULL ? "Full" : "Incremental") << std::endl;
    }
};

} // namespace plugins
} // namespace ebackup

#endif // RECOVERY_POINT_H